﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ActionTrackerDAO.Base;
using ActionTrackerEntities;

namespace ActionTrackerDAO
{
    public class ProyectoDAO : DAOBase<Proyecto,int>
    {
        public List<Proyecto> GetByFiltro(bool pSoloActivos)
        {
            var oQuery = Session.QueryOver<Proyecto>();
            Session.Clear();

            if (pSoloActivos)
            {
                oQuery.Where(x => x.FechaBaja == null);
            }

            return (List<Proyecto>) oQuery.List();
        }

        public bool ExisteProyectoConNombre(string pObjetivo, int? pIdProyectoEnEdicion)
        {
            if (pIdProyectoEnEdicion.HasValue)
            {
                Session.Clear();
                //busco el proyecto en la BD
                var oProyectoEnEdicion = Session.QueryOver<Proyecto>()
                .Where(x => x.IdProyecto == pIdProyectoEnEdicion)
                .List().FirstOrDefault();

                //si el nombre que está en BD es igual al parámetro, no cambié el nombre de proyecto
                if (oProyectoEnEdicion.Objetivo == pObjetivo)
                {
                    return false;
                }
            }

            var oQuery = Session.QueryOver<Proyecto>()
            .Where(x => x.Objetivo == pObjetivo)
            .List();
            if (oQuery.Count > 0)
            {
                return true;
            }
            return false;
        }
    }
}
